from src.Pipe import Pipe


class Fiting(Pipe):
    def __init__(self, IOS):
        super().__init__(IOS)
        self.set_type()
        self.set_angle()

    def set_type(self):
        self.type = self.ios.input("Тип присоединения:")

    def set_angle(self):
        self.angle = self.ios.input("Угол поворота:")

    def __str__(self):
        return f"Отвод {self.caliber}x{self.depth} на {self.angle} градусов под {self.type} из стали марки {self.material}"

    def show(self):
        super().show()
        self.ios.output(f"Тип: {self.type} под углом {self.angle}")

    def edit(self):
        self.values = [
            "Диаметр",
            "Толщина стенки",
            "Марка стали",
            "Тип соединения",
            "Угол поворота",
            "Назад",
        ]
        self.actions = [
            self.set_caliber,
            self.set_depth,
            self.set_material,
            self.set_type,
            self.set_angle,
        ]

        try:
            while True:
                choice = self.ios.choiser(self.values, self.actions)
                if choice == len(self.actions):
                    self.ios.output("Редактирвание прервано")
                    return
                self.actions[choice]()

        except Exception as e:
            self.ios.output("Операция невозможна: " + e.args[0])
            return
